import {

    reqInfoPage,
    reqResetPassword,
    reqSetStatus,
    reqDelInfo,











    reqTeacherList,
    reqDelUserInfoList,
    reqDelUserInfo,
    reqUpdateUserInfo,
    reqAddUserInfo,
    reqStudentInfoPage,
    reqLoginState,
    reqCheckEmail,
    reqEmailCode,
    reqUpdateEmail,
    reqUpdatePassword,
    reqUpdateName,
    reqUpdatePhone,
    reqUpdateAvatarUrl,
    reqTotalTimeByUserId,
    reqUserInfo,
    reqUserLogout,
    reqUserLogin,
    reqUserRegister
} from "@/network/user"

const state = {
    resultStatus: false,
    errorCode: null,
    errorMessage: null,
    resultData: {},
}

const mutations = {
    // // 用户登录。
    // USERLOGIN(state, user) {
    //     // localStorage
    //     if (user.resultStatus === true) {
    //         console.log("执行了......")
    //         localStorage.setItem('login', user)
    //     }
    // },
    CLEAR(state) {
        state.userInfo = {}
        state.token = ''
        localStorage.removeItem('login')
    },
    CMSG(state, data) {
        state.cmsg.errorCode = data.errorCode
        state.cmsg.errorMessage = data.errorMessage
    }
}

const actions = {

    /***********************************************  登录状态相关 ****************************************************/

    // 登录
    async userLogin({commit}, data) {
        // console.log("vueX ==>", result);
        //我在这个事件里获取到  this.saveAllList，调用this.$store.commit把数据存入vuex中
        // commit('USERLOGIN', data)
        return reqUserLogin(data);
    },
    // 注册
    async userRegister({commit}, data) {
        // console.log("vueX ==>", result);
        //我在这个事件里获取到  this.saveAllList，调用this.$store.commit把数据存入vuex中
        // commit('USERLOGIN', data)
        return reqUserRegister(data);
    },
    async getLoginState({commit}) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqLoginState();
    },
    // 退出
    async userLogout({commit}) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqUserLogout();
    },


    /*******************************************  用户操作相关【管理员】 ************************************************/
    // 获取信息列表。
    async getUserInfoPage({commit}, data) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqInfoPage(data);
    },
    // 重置密码。
    async resetPassword({commit}, id) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqResetPassword(id);
    },
    // 设置账号状态。
    async setStatus({commit}, id) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqSetStatus(id);
    },
    // 删除账号。
    async deleteUserInfo({commit}, id) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqDelInfo(id);
    },









    /***********************************************  用户信息相关 ****************************************************/
    // 获取用户信息。
    async getUserInfo({commit}, userId) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqUserInfo(userId);
    },
    // 获取教师列表。
    async getTeacherList({commit}, ) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqTeacherList();
    },

    // 获取用户信息。
    async getStudentInfoPage({commit}, data) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqStudentInfoPage(data);
    },
    // 获取指定用户的总学习时长。
    async getTotalTimeByUserId({commit}, userId) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqTotalTimeByUserId(userId);
    },



    /***************************************************  账号相关 ****************************************************/
    // 修改姓名。
    async updateName({commit}, name) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqUpdateName(name);
    },
    // 修改手机号。
    async updatePhone({commit}, phone) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqUpdatePhone(phone);
    },
    // 修改头像。
    async updateAvatarUrl({commit}, avatarUrl) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqUpdateAvatarUrl(avatarUrl);
    },
    // 修改密码。
    async updatePassword({commit}, data) {
        // 响应数据。
        return reqUpdatePassword(data);
    },
    // 修改邮箱。
    async updateEmail({commit}, data) {
        // 响应数据。
        return reqUpdateEmail(data);
    },
    // 获取邮箱验证码。
    async getEmailCode({commit}, email) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqEmailCode(email);
    },
    // 校验邮箱。
    async checkEmail({commit}, data) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqCheckEmail(data);
    },



    /***************************************************  用户 crud **************************************************/

    // 添加用户信息。
    async addUserInfo({commit}, data) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqAddUserInfo(data);
    },
    // 修改用户信息。
    async updateUserInfo({commit}, data) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqUpdateUserInfo(data);
    },
   async delUserInfo({commit}, userId) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqDelUserInfo(userId);
    },
   async delUserInfoList({commit}, delUserList) {
        // console.log("vueX ==>", result);
        // 响应数据。
        return reqDelUserInfoList(delUserList);
    },

}

const getters = {}

export default {
    state,
    mutations,
    actions,
    getters
}